import sys
import os
# 添加项目根目录到系统路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from common.train_dict import classify_problem, get_dict_name  # 导入字典查询函数
from common.person_dict import process_persons_list  # 导入人员字典处理模块
import json

def process_fyrs_section(output_lines: list) -> list:
    """
    处理反映人信息部分
    
    Args:
        output_lines: 工作流输出的行列表
    
    Returns:
        list: 处理后的反映人信息列表
    """
    try:
        # 直接从原始输出中提取fyrs数据
        fyrs = []
        current_section = None
        fyrs_content = []
        
        # 首先提取fyrs部分的内容
        for line in output_lines:
            line = line.strip()
            
            # 识别fyrs部分
            if "fyrs:" in line:
                current_section = "fyrs"
                continue
            elif "bfyrs:" in line:
                # 当遇到bfyrs部分时，结束fyrs的提取
                current_section = None
                break
                
            # 收集fyrs部分的数据
            if current_section == "fyrs":
                fyrs_content.append(line)
        
        # 处理收集到的fyrs内容
        for line in fyrs_content:
            if line and line.startswith("['") and line.endswith("']"):
                # 处理数组格式的数据
                content = line[2:-2]  # 移除首尾的 [' 和 ']
                items = content.split("', '")
                for item in items:
                    parts = item.split('&&')
                    if len(parts) >= 3:
                        info = {
                            'bh': parts[0].strip(),
                            'mc': parts[1].strip(),
                            'zw': parts[2].strip(),
                        }
                        # 处理null值
                        for key in info:
                            if info[key].lower() == 'null':
                                info[key] = ''
                        fyrs.append(info)
            elif line == "[]":
                # 如果是空数组，直接返回空列表
                fyrs = []
                # print("fyrs: 空数组")
                        
        return fyrs
    except Exception as e:
        print(f"处理反映人信息时发生错误: {str(e)}")
        return [] 